import React, { memo } from 'react';
import { type NodeProps } from '@xyflow/react';
import { CallSplit as SequenceIcon } from '@mui/icons-material';
import { NodeType, type BehaviorTreeNode } from '../../types/behaviorTree';
import { BaseNode } from './BaseNode';
import { NODE_COLORS } from '../../constants/theme';

/**
 * @module SequenceNode
 * @description 序列行为树节点的 React 组件。
 * 该组件展示序列节点的视觉表示，并根据验证错误状态显示边框颜色和错误图标。
 */
const SequenceNodeComponent: React.FC<NodeProps<BehaviorTreeNode>> = ({ id, data }) => {
  return (
    <BaseNode
      id={id}
      data={data}
      type={NodeType.Sequence}
      icon={<SequenceIcon sx={{ mr: 0.5, color: NODE_COLORS[NodeType.Sequence].icon }} />}
      defaultColors={NODE_COLORS[NodeType.Sequence]}
    />
  );
};

export default memo(SequenceNodeComponent);